import { createApp } from 'vue'

import { PullRefresh } from 'vant';

//根组件
import App from './App.vue'

//引入封装路由
import router from './routers/index'

// 引入ui框架
import Vant from 'vant';
import 'vant/lib/index.css';

// 引入接口
import api from './api/index'
// console.log(api);

// 引入vue3-useCookies
import VueCookies from 'vue3-cookies'

//根组件被加载到vue的应用程序中,并将它挂载到 id=app的容器上
const app = createApp(App)
    .use(router)        //挂载路由
    .use(Vant)          //挂载UI框架
    .use(PullRefresh)   //下拉属性
    .use(api)           //挂载接口
    .use(VueCookies)    //挂载cookie
    .mount('#app')


// 所有的路由都会先进入这个方法里面，判断需不需要登录和有没有登录
router.beforeEach(async (to, from, next) => {
     //to 这个参数代表 去到哪个路由
    //from 这个参数代表 从哪里来
    //next 这个参数代表 是否可以去到下一步
    //我们可以根据to当中是否有meta信息来判断当前的路由是否需要登录
    //这个就是我们常见的判断是否有登录

    var IsLogin = to.meta.IsLogin ? to.meta.IsLogin : false;

    
    if (IsLogin) {
        // 要登录
        // 判断是否有cookies
        var LoginUser = app.$cookies.get('LoginUser');
       
        
        // 没有登录就跳转到登录界面
        if (!LoginUser || LoginUser == {}) {
            next('/user/base/login')
            return
        }

        // 获取id
        var userid = LoginUser.id ? LoginUser.id : 0;
        
        // 接口请求
        var result = await api.check({ userid: userid })
        
        if (result.code == 0) {
            app.$cookies.remove('LoginUser')
            next('/user/base/login')
            return
        } else {
            app.$cookies.set('LoginUser', result.data)
            
            // 让它自己去跳转
            next();
        }
    } else { 
        // 不需要登录直接跳转走
        next();
    }
})

